snippet al "Description" b
package main

import (
	"fmt"
	"os"
	"bufio"
	"strconv"
	"math"
)

const (
	N = $1
)

var (
	sc *bufio.Scanner
	// var wtr = bufio.NewWriter(os.Stdout)
	>++>
)

func main() {
	// redirect()
	>++>
}


func redirect() {
	f, _ := os.Open("input.txt")
	os.Stdin = f
	sc = bufio.NewScanner(os.Stdin)
}

func init() {
	sc = bufio.NewScanner(os.Stdin)
	sc.Buffer([]byte{}, math.MaxInt64)
}

// ==================================================
// io
// ==================================================

func ni() int {
	sc.Scan()
	i, _ := strconv.Atoi(sc.Text())
	return i
}

func nia() []int {
	sc.Scan()
	strArr := strings.Split(sc.Text(), " ")
	var intArr []int
	for _, s := range strArr {
		num, _ := strconv.Atoi(s)
		intArr = append(intArr, num)
	}
	return intArr
}

func nf() float64 {
	sc.Scan()
	f, e := strconv.ParseFloat(sc.Text(), 64)
	if e != nil {
		panic(e)
	}
	return f
}

func ns() string {
	sc.Scan()
	return sc.Text()
}

func max(a int, b int) int {
	if a > b {
		return a
	}

	return b
}

endsnippet

snippet f "Description" b
for $1; >++>; >++> {
	>++>
}
endsnippet

snippet sc "Description" b
fmt.Scan(&$1)
endsnippet

snippet sca "Description" b
fmt.Scanf("$1", &>++>)
endsnippet

snippet p "Description" w
fmt.Printf("$1">++>)
endsnippet

snippet pn "Description" w
fmt.Println($1)
endsnippet

snippet spr "Description" w
fmt.Sprintf("$1">++>)
endsnippet

# A valid snippet should starts with:
#
#		snippet trigger_word [ "description" [ options ] ]
#
# and end with:
#
#		endsnippet
#
# Snippet options:
#
#		b - Beginning of line.
#		i - In-word expansion.
#		w - Word boundary.
#		r - Regular expression
#		e - Custom context snippet
#		A - Snippet will be triggered automatically, when condition matches.
#
# Basic example:
#
#		snippet emitter "emitter properties" b
#		private readonly ${1} = new Emitter<$2>()
#		public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
#		endsnippet
#
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt

